# -*- coding:utf-8 -*-
import itchat
import requests

# 图灵机器人 配置信息

# api接口：http://openapi.tuling123.com/openapi/api/v2
# appkey：4fd2dfda4d494d3a971b905ce8f177a0
# 密钥：d8d18fe006e6cc35

# 茉莉机器人 配置信息
# api接口：'http://i.itpk.cn/api.php'
# "api_key": "9ddf52cacd0ef429d1c63bf411b9bed6", # 茉莉机器人的api_key
# "api_secret": "n4gxkdyckd7p"                   # 茉莉机器人的api_secret

# def get_response(msg):
#     apiurl = 'http://i.itpk.cn/api.php'  # 茉莉机器人的网址
#     data = {
#         "question": msg,  # 获取到聊天的文本信息
#         "api_key": "9ddf52cacd0ef429d1c63bf411b9bed6", # 茉莉机器人的api_key
#         "api_secret": "n4gxkdyckd7p"                   # 茉莉机器人的api_secret
#     }
#
#     r = requests.post(apiurl, data=data)  # 构造网络请求
#     return r.text
#
#
# @itchat.msg_register(itchat.content.TEXT)  # 好友消息的处理
# def print_content(msg):
#     return get_response(msg['Text'])
#
#
# # @itchat.msg_register([itchat.content.TEXT], isGroupChat=True)  # 群消息的处理
# # def print_content(msg):
# #     return get_response(msg['Text'])
#
#
# if __name__ == '__main__':
#     itchat.auto_login(True)  # 自动登录
#     itchat.run()  # 启动聊天机器人


APIUrl = 'http://openapi.tuling123.com/openapi/api/v2'
KEY = '4fd2dfda4d494d3a971b905ce8f177a0'  #可以到图灵机器人官网申请一个，免费的

def get_response(msg):
    # 构造了要发送给服务器的数据
    apiUrl = APIUrl
    data = {
        'api_key'    : KEY,
        # "api_secret": "d8d18fe006e6cc35",
        'info'   : msg,
        'userid' : 'wechat-robot', #这里随意写点什么都行
    }
    try:
        r = requests.post(apiUrl, data=data).json() # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
        return r.get('text')                        # 为了防止服务器没有正常响应导致程序异常退出，这里用try-except捕获了异常
    except:                                        # 如果服务器没能正常交互（返回非json或无法连接），那么就会进入下面的return
        return                                    # 将会返回一个None

#注册获取别人发来的信息方法
@itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
def tuling_reply(msg):
        print(msg.User['NickName'] +":"+ msg['Text'])    #这里输出给你发微信的人的名字和他发送的内容
        reply = get_response(msg['Text'])         #调取图灵机器人获取回复
        print(reply)       #打印机器人回复的消息
        return reply

@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)    #群消息的处理
def print_content(msg):
    if msg.User["NickName"]=='':    #这里可以在后面加更多的or msg.User["NickName"]=='你希望自动回复群的名字'
        print(msg.User['NickName'] +":"+ msg['Text'])     #打印哪个群给你发了什么消息
        print(get_response(msg['Text'])+"\n")           #打印机器人回复的消息
        return get_response(msg['Text'])
    else:                                         #其他群聊直接忽略
        pass

itchat.auto_login(hotReload=True)
itchat.run()

